package com.android.openapp.services;


import com.android.openapp.data.Place;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

@Deprecated
public class PreferenzeDb{
  
	SQLiteDatabase mDb;
	DbHelper mDbHelper;
	Context mContext;
	private static final String DB_NAME="Preferenze";//Il db delle preferenze dell'app
	private static final int DB_VERSION=1; //numero di versione del db
	
	public PreferenzeDb(Context ctx){
		mContext=ctx;
		mDbHelper=new DbHelper(ctx, DB_NAME, null, DB_VERSION);	  //quando istanziamo questa classe, istanziamo anche l'helper (vedi sotto)	
	}
	
	public void open(){  //All'apertura il database deve essere in lettura e scrittura
		mDb=mDbHelper.getWritableDatabase();
	}
	public void close(){ //chiudiamo il database su cui agiamo
		mDb.close();
	}
	public void insertPlace(Place pl){ //metodo per inserire i dati
		ContentValues cv=new ContentValues();
		cv.put(LocMetaData.INDEX_Place, 0);
		cv.put(LocMetaData.ROW, pl.getBytePlace());
		mDb.insert(LocMetaData.LOC_TABLE, null, cv);
	}
	public Cursor fetchPref(){ //metodo per fare la query di tutti i dati
		return mDb.query(LocMetaData.LOC_TABLE, null,null,null,null,null,null);		
	}
	
	static class LocMetaData {  // i metadati della tabella, accessibili ovunque
		static final String LOC_TABLE = "Preferenze";
		static final String ID = "_id";
		static final String INDEX_Place="index_place"; //index di distinzione
		static final String ROW= "row";
	}

	private static final String PREFERENZE_TABLE_CREATE = "CREATE TABLE IF NOT EXISTS "  //codice sql di creazione della tabella
			+ LocMetaData.LOC_TABLE + " (" 
			+ LocMetaData.ID+ " INTEGER primary key autoincrement, "
			+ LocMetaData.INDEX_Place + " INTEGER not null,"
			+ LocMetaData.ROW + " BLOB not null );";

	private class DbHelper extends SQLiteOpenHelper { //classe che ci aiuta nella creazione del db

		public DbHelper(Context context, String name, CursorFactory factory,int version) {
			super(context, name, factory, version);
		}

		@Override
		public void onCreate(SQLiteDatabase _db) { //solo quando il db viene creato, creiamo la tabella
			_db.execSQL(PREFERENZE_TABLE_CREATE);
		}

		@Override
		public void onUpgrade(SQLiteDatabase _db, int oldVersion, int newVersion) {
			//qui mettiamo eventuali modifiche al db, se nella nostra nuova versione della app, il db cambia numero di versione
		}
	}
}